Ext.define('AmpleHarvest.objects.search.querypanel.form.cReaper',
{
	extend				: 'Ext.form.Panel',
	alias				: 'widget.ampleharvest-objects-search-querypanel-form-creaper',
	requires			:
	[
			"Ext.button.Button", 
			"Ext.form.field.Text", 
			"Ext.form.FieldSet",
			"Ext.form.field.Date", 
			'Ext.form.ComboBox',
			"AmpleHarvest.elements.combobox.cFacet",
			'AmpleHarvest.objects.search.querypanel.form.AbstractSearchForm'
	],
	//height				: 675,
	m_arr_StateEvents	: [],

	constructor			: function()
	{
		
		// The store below pulls back all of the constant data from cDoc via REST and can be used to fill out the entity names
		//this.solr_constants = Ext.create("AmpleHarvest.DATA.Store.solr.cDoc");

	
		
		this.PublishDateBox = Ext.create("Ext.form.FieldSet",
				{
					title		: "Publish Date",
					collapsible	: true,
					labelWidth	: 70,
					boxMinWidth	: 275,
					stateId		: 'publish_date',
					stateful	: false,
					listeners	:
					{
						resize	:
						{
							fn	: function()
							{
								this.up('form').save_State();
							}
						}
					}
				});

		this.PublishDateBox.add(Ext.create("Ext.form.field.Date",
		{
			fieldLabel	: "Start Date",
			dataType	: AmpleHarvest.objects.search.querypanel.form.AbstractSearchForm.C_STR_DATATYPE_DATE,
			anchor		: "100%",
			name		: "cDoc_C_STR_FIELD_PUBLISH_DATE_start",
			allowBlank	: true
		}
		));

		this.PublishDateBox.add(Ext.create("Ext.form.field.Date",
		{
			fieldLabel	: "End Date",
			dataType	: AmpleHarvest.objects.search.querypanel.form.AbstractSearchForm.C_STR_DATATYPE_DATE,
			anchor		: "100%",
			name		: "cDoc_C_STR_FIELD_PUBLISH_DATE_end",
			allowBlank	: true
		}
		));

//		this.HarvestDateBox = Ext.create("Ext.form.FieldSet",
//				{
//					title		: "Harvest Date",
//					collapsible	: true,
//					labelWidth	: 70,
//					boxMinWidth	: 275,
//					stateId		: 'harvest_date',
//					stateful	: false,
//					listeners	:
//					{
//						resize	:
//						{
//							fn	: function()
//							{
//								this.up('form').save_State();
//							}
//						}
//					}
//				});
//
//		this.HarvestDateBox.add(Ext.create("Ext.form.field.Date",
//		{
//			fieldLabel	: "Start Date",
//			dataType	: AmpleHarvest.objects.search.querypanel.form.AbstractSearchForm.C_STR_DATATYPE_DATE,
//			anchor		: "100%",
//			name		: "cDoc_C_STR_FIELD_HARVEST_DATE_start",
//			allowBlank	: true
//		}
//		));
//
//		this.HarvestDateBox.add(Ext.create("Ext.form.field.Date",
//		{
//			fieldLabel	: "End Date",
//			dataType	: AmpleHarvest.objects.search.querypanel.form.AbstractSearchForm.C_STR_DATATYPE_DATE,
//			anchor		: "100%",
//			name		: "cDoc_C_STR_FIELD_HARVEST_DATE_end",
//			allowBlank	: true
//		}
//		));
//
//		this.IndexDateBox = Ext.create("Ext.form.FieldSet",
//				{
//					title		: "Index Date",
//					collapsible	: true,
//					labelWidth	: 70,
//					boxMinWidth	: 275,
//					stateId		: 'index_date',
//					stateful	: false,
//					listeners	:
//					{
//						resize	:
//						{
//							fn	: function()
//							{
//								this.up('form').save_State();
//							}
//						}
//					}
//				});
//
//		this.IndexDateBox.add(Ext.create("Ext.form.field.Date",
//		{
//			fieldLabel	: "Start Date",
//			dataType	: AmpleHarvest.objects.search.querypanel.form.AbstractSearchForm.C_STR_DATATYPE_DATE,
//			anchor		: "100%",
//			name		: "cDoc_C_STR_FIELD_INDEX_DATE_start",
//			allowBlank	: true
//		}
//		));
//
//		this.IndexDateBox.add(Ext.create("Ext.form.field.Date",
//		{
//			fieldLabel	: "End Date",
//			dataType	: AmpleHarvest.objects.search.querypanel.form.AbstractSearchForm.C_STR_DATATYPE_DATE,
//			anchor		: "100%",
//			name		: "cDoc_C_STR_FIELD_INDEX_DATE_end",
//			allowBlank	: true
//		}
//		));

		this.ReadStatus = Ext.create('Ext.form.ComboBox',
				{
					fieldLabel		: 'Read',
					store			: Ext.create('Ext.data.Store',
							{
								fields	:
								[
										'label', 'term'
								],
								data	:
								[
										{
											"label"	: "Read",
											"term"	: "read"
										},
										{
											"label"	: "Unread",
											"term"	: "unread"
										},
										{
											"label"	: "All",
											"term"	: ""
										}
								// ...
								]
							}),
					anchor			: "100%",
					name			: "read",
					value			: "",
					queryMode		: 'local',
					displayField	: 'label',
					valueField		: 'term'
				});

		this.items =
		[
				Ext.create("Ext.form.field.Text",
						{
							fieldLabel	: "General",
							itemId		: 'f_general',
							name		: "general",
							hiddenName	: "general",
							inputType	: "textfield",
							allowBlank	: true,
							// value : g_arr_Requests["general"],
							anchor		: "100%"
						}), Ext.create("AmpleHarvest.elements.combobox.cFacet",
				{
					fieldLabel		: "Source",
					name			: "source",
					disabled		: false,
					m_str_Facet		: "source",
					m_str_SolrType	: "reaper",
					displayField	: 'term',
					hiddenName		: 'source',
					valueField		: 'term',
					emptyText		: 'Enter Source'
				}
				),

//				Ext.create("AmpleHarvest.elements.combobox.cFacet",
//						{
//							fieldLabel		: "Person",
//							name			: "entity.person.name",
//							disabled		: false,
//							m_str_Facet		: "entity.person.name",
//							displayField	: 'term',
//							hiddenName		: 'entity.person.name',
//							valueField		: 'term',
//							emptyText		: 'Enter Person'
//						}),
//
//				Ext.create("AmpleHarvest.elements.combobox.cFacet",
//						{
//							fieldLabel		: "Company",
//							name			: "entity.organization.company",
//							disabled		: false,
//							m_str_Facet		: "entity.organization.company",
//							displayField	: 'term',
//							hiddenName		: 'entity.organization.company',
//							valueField		: 'term',
//							emptyText		: 'Enter Company'
//						}),
//
//				Ext.create("AmpleHarvest.elements.combobox.cFacet",
//						{
//							fieldLabel		: "Language",
//							name			: "language",
//							disabled		: false,
//							m_str_Facet		: "language",
//							displayField	: 'term',
//							hiddenName		: 'language',
//							valueField		: 'term',
//							emptyText		: 'Enter Language'
//						}),
//
//				Ext.create("AmpleHarvest.elements.combobox.cFacet",
//						{
//							fieldLabel		: "Continent",
//							name			: "entity.place.continent",
//							disabled		: false,
//							m_str_Facet		: "entity.place.continent",
//							displayField	: 'term',
//							hiddenName		: 'entity.place.continent',
//							valueField		: 'term',
//							emptyText		: 'Enter Continent'
//						}),
//
//				Ext.create("AmpleHarvest.elements.combobox.cFacet",
//						{
//							fieldLabel		: "Region",
//							name			: "entity.place.region",
//							disabled		: false,
//							m_str_Facet		: "entity.place.region",
//							displayField	: 'term',
//							hiddenName		: "entity.place.region",
//							valueField		: 'term',
//							emptyText		: 'Enter Region'
//						}),
//
//				Ext.create("AmpleHarvest.elements.combobox.cFacet",
//						{
//							fieldLabel		: "Country",
//							name			: "entity.place.country.name",
//							disabled		: false,
//							m_str_Facet		: "entity.place.country.name",
//							displayField	: 'term',
//							hiddenName		: "entity.place.country.name",
//							valueField		: 'term',
//							emptyText		: 'Enter Country'
//						}),
//
//				Ext.create("AmpleHarvest.elements.combobox.cFacet",
//						{
//							fieldLabel		: "City",
//							name			: "entity.place.city",
//							disabled		: false,
//							m_str_Facet		: "entity.place.city",
//							displayField	: 'term',
//							hiddenName		: "entity.place.city",
//							valueField		: 'term',
//							emptyText		: 'Enter City'
//						}), this.ReadStatus,

				this.PublishDateBox//, this.HarvestDateBox, this.IndexDateBox
		]
	},

	load_FromJson		: function(obj_Json)
	{
		for (var int_I = 0; int_I < obj_Json.Query.length; int_I++)
		{
//			if (obj_Json.Query[int_I].property == "<?php print(cDoc::C_STR_FIELD_PUBLISH_DATE); ?>_")
//			{
//				this
//						.set_FieldValue(
//								"<?php print(cDoc::C_STR_FIELD_PUBLISH_DATE); ?>_start",
//								obj_Json.Query[int_I].value
//						);
//
//				if (obj_Json.Query[int_I].value_end)
//				{
//					this
//							.set_FieldValue(
//									"<?php print(cDoc::C_STR_FIELD_PUBLISH_DATE); ?>_end",
//									obj_Json.Query[int_I].value_end
//							);
//				}
//			}
//			else if (obj_Json.Query[int_I].property == "<?php print(cDoc::C_STR_FIELD_HARVEST_DATE); ?>_")
//			{
//				this
//						.set_FieldValue(
//								"<?php print(cDoc::C_STR_FIELD_HARVEST_DATE); ?>_start",
//								obj_Json.Query[int_I].value
//						);
//				if (obj_Json.Query[int_I].value_end)
//				{
//					this
//							.set_FieldValue(
//									"<?php print(cDoc::C_STR_FIELD_HARVEST_DATE); ?>_end",
//									obj_Json.Query[int_I].value_end
//							);
//				}
//			}
//			else if (obj_Json.Query[int_I].property == "<?php print(cDoc::C_STR_FIELD_INDEX_DATE); ?>_")
//			{
//				this.set_FieldValue(
//						"<?php print(cDoc::C_STR_FIELD_INDEX_DATE); ?>_start",
//						obj_Json.Query[int_I].value
//				);
//				if (obj_Json.Query[int_I].value_end)
//				{
//					this
//							.set_FieldValue(
//									"<?php print(cDoc::C_STR_FIELD_INDEX_DATE); ?>_end",
//									obj_Json.Query[int_I].value_end
//							);
//				}
//			}
//			else 
			if (obj_Json.Query[int_I].property == "read")
			{
				if (obj_Json.Query[int_I].condition == "!=")
				{
					this.set_FieldValue("read", "unread");
				}
				else
				{
					this.set_FieldValue("read", "read");
				}

			}
			else
			{
				var str_name = obj_Json.Query[int_I].property;
				if (obj_Json.Query[int_I].prefix)
				{
					str_name += "_"
							+ obj_Json.Query[int_I].prefix.substr(0,
									obj_Json.Query[int_I].prefix.length - 1
							);
				}

				this.set_FieldValue(str_name, obj_Json.Query[int_I].value);
			}
		}
	}
}
);